<!DOCTYPE html>
<html>
<head>
<title>依存症プログラム</title>
<link rel="preload" as="style" crossorigin
    href="https://fontsapi.zeoseven.com/570/main/result.css"
    onload="this.rel='stylesheet'"
    onerror="this.href='https://fontsapi-storage.zeoseven.com/570/main/result.css'" />
<noscript>
    <link rel="stylesheet" href="https://fontsapi.zeoseven.com/570/main/result.css" />
</noscript>
<style>
    body {
        font-family: "Fusion Pixel 12px M zh_hans";
        font-weight: normal;
    }
</style>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
background-color: #1a0a1a;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 20px;
overflow: auto;
height: auto;
font-family: "Fusion Pixel 12px M zh_hans", monospace;
font-weight: normal;
}
.game-console {
width: 100%;
max-width: 420px;
height: auto;
background-color: #f8c8dc;
border: 4px solid #BB3091;
border-radius: 50px;
padding: 20px;
box-shadow: 0 0 15px #ff69b4, 0 0 25px #ff69b4, inset 0 0 10px #00000033;
display: flex;
flex-direction: column;
gap: 15px;
border-top: 7px solid #BB3091;
border-bottom: 7px solid #BB3091;
}
.screen-area {
background-color: #1a1a1a;
border: 4px solid #4d4d4d;
border-radius: 30px;
padding: 15px;
box-shadow: inset 0 0 10px #000;
position: relative;
overflow: hidden;
background-image: linear-gradient(rgba(255, 255, 255, 0.05) 50%, transparent 50%);
background-size: 100% 4px;
animation: scanline 0.2s linear infinite;
}
@keyframes scanline {
from { background-position: 0 0; }
to { background-position: 0 4px; }
}
.status-emoji {
position: absolute;
top: 10px;
right: 10px;
font-size: 2.5em;
z-index: 10;
text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff;
animation: emoji-float 2s ease-in-out infinite;
}
@keyframes emoji-float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-5px); }
}
.character-display {
text-align: center;
margin-bottom: 15px;
position: relative;
}
.character-name {
color: #ff69b4;
font-size: 1.2em;
margin-bottom: 10px;
text-shadow: 0 0 5px #ff00ff;
font-weight: bold;
}
.character-image-wrapper {
position: relative;
width: 100%;
height: auto;
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
margin-top: -10px
}
.character-image {
width: 100%;
max-width: 300px;
height: auto;
object-fit: contain;
z-index: 3;
animation: float 3s ease-in-out infinite, color-shift 6s infinite;
}
.background-image {
position: absolute;
width: 100%;
max-width: 300px;
height: auto;
object-fit: contain;
z-index: 2;
animation: glitch 7s infinite, color-shift 6s infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
@keyframes glitch {
0% { filter: hue-rotate(0) brightness(100%); }
5% { filter: hue-rotate(10deg) brightness(120%); }
10% { filter: hue-rotate(0) brightness(100%); }
15% { transform: translateX(2px); }
16% { transform: translateX(-2px); }
17% { transform: translateX(0); }
20% { filter: hue-rotate(-5deg) brightness(110%); }
25% { filter: hue-rotate(0) brightness(100%); }
95% { filter: hue-rotate(0) brightness(100%); }
96% { transform: translateX(3px) translateY(2px); }
97% { transform: translateX(-2px) translateY(-1px); }
98% { transform: translateX(0) translateY(0); }
100% { filter: hue-rotate(0) brightness(100%); }
}
@keyframes color-shift {
0%, 90% { filter: hue-rotate(0) brightness(100%); }
92% { filter: hue-rotate(5deg) brightness(110%); }
94% { filter: hue-rotate(-5deg) brightness(110%); }
96% { filter: hue-rotate(0) brightness(100%); }
98% { filter: hue-rotate(10deg) brightness(120%); }
100% { filter: hue-rotate(0) brightness(100%); }
}
.dialogue-bubble {
position: absolute;
bottom: -17px;
left: 50%;
transform: translateX(-50%);
width: 90%;
background-color: rgba(0, 0, 0, 0.5);
border: 3px solid #ff69b4;
border-radius: 10px;
padding: 12px;
color: #fff;
font-size: 0.9em;
text-align: center;
z-index: 15;
display: none;
box-shadow: 0 0 10px rgba(255, 105, 180, 0.5);
}
.dialogue-bubble::after {
content: '';
position: absolute;
top: -16px;
left: 50%;
transform: translateX(-50%);
border-width: 8px;
border-style: solid;
border-color: transparent transparent #ff69b4 transparent;
}
.dialogue-text {
width: 100%;
}
.status-grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
gap: 10px;
font-size: 0.9em;
color: #fff;
text-shadow: 0 0 3px #ff69b4;
}
.status-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
padding: 8px;
background-color: rgba(0, 0, 0, 0.3);
border-radius: 8px;
border: 2px solid #ff69b4;
}
.status-label {
color: #f8c8dc;
font-size: 0.9em;
}
.progress-bar-container {
width: 100%;
height: 10px;
background-color: 4d4d4d;
border-radius: 2px;
overflow: hidden;
border: 1px solid #333;
}
.progress-bar {
height: 100%;
width: 0%;
border-radius: 3px;
transition: width 0.5s ease-in-out;
}
#cleanliness-bar { background: linear-gradient(90deg, #86B5E0, #1e90ff); }
#satiety-bar { background: linear-gradient(90deg, #E3BD96, #E5863C); }
#mood-bar { background: linear-gradient(90deg, #FC9EAD, #ff69b4); }
#growth-bar { background: linear-gradient(90deg, #d8bfd8, #9370db); }
.interaction-panel {
background-color: #e0a8c0;
border: 2px solid #333;
border-radius: 10px;
padding: 10px;
display: none;
flex-direction: column;
gap: 10px;
}
.interaction-panel.active {
display: flex;
}
.interaction-title {
text-align: center;
font-weight: bold;
color: #333;
border-bottom: 2px dotted #ff69b4;
padding-bottom: 5px;
}
.sub-buttons {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
gap: 8px;
}
.buttons-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.action-button, .sub-button {
padding: 12px;
font-size: 1em;
font-weight: bold;
color: #FFF;
background-color: #FFAED9;
border: 2px solid #B41DC7;
border-radius: 18px;
cursor: pointer;
text-align: center;
transition: all 0.2s ease;
box-shadow: 0 4px #E02FAA;
font-family: "Fusion Pixel 12px M zh_hans", monospace;
text-shadow: -1px -1px 0 #A82372, 1px -1px 0 #A82372, -1px 1px 0 #A82372, 1px 1px 0 #A82372;
}
.action-button:active, .sub-button:active {
transform: translateY(4px);
box-shadow: 0 0 #ff69b4;
}
.sub-button {
background-color: #FEEBF9;
border-color: #f8c8dc;
box-shadow: 0 4px #FCB2D1;
}
.sub-button:active {
box-shadow: 0 0 #f8c8dc;
}
.stage-notification {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.85);
color: #ff69b4;
display: none;
justify-content: center;
align-items: center;
text-align: center;
z-index: 20;
font-size: 2em;
flex-direction: column;
gap: 20px;
animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.stage-notification-title {
font-weight: bold;
text-shadow: 0 0 10px #ff00ff, 0 0 20px #ff00ff;
}
.stage-notification-text {
font-size: 0.6em;
max-width: 80%;
}
.stage-display-container {
position: absolute;
top: 10px;
left: 10px;
color: #ff69b4;
font-weight: bold;
text-shadow: 0 0 5px #ff00ff;
z-index: 10;
}
.naming-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
display: flex;
justify-content: center;
align-items: center;
z-index: 100;
}
.naming-container {
background-color: #f8c8dc;
padding: 30px;
border-radius: 15px;
border: 4px solid #333;
box-shadow: 0 0 20px #ff69b4;
text-align: center;
max-width: 90%;
width: 350px;
}
.naming-title {
color: #333;
margin-bottom: 20px;
font-size: 1.5em;
font-weight: bold;
}
.name-input {
width: 100%;
padding: 12px;
font-size: 1.2em;
border: 2px solid #ff69b4;
border-radius: 8px;
margin-bottom: 20px;
text-align: center;
background-color: #fff;
color: #333;
font-family: "Fusion Pixel 12px M zh_hans", monospace;
}
.name-input:focus {
outline: none;
box-shadow: 0 0 10px #ff69b4;
}
.submit-name {
padding: 12px 30px;
font-size: 1.2em;
font-weight: bold;
color: #fff;
background-color: #333;
border: 2px solid #ff69b4;
border-radius: 8px;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: 0 4px #ff69b4;
font-family: "Fusion Pixel 12px M zh_hans", monospace;
}
.submit-name:active {
transform: translateY(4px);
box-shadow: 0 0 #ff69b4;
}
@media (max-width: 480px) {
body {
padding: 10px;
}
.game-console {
padding: 15px;
border-radius: 20px;
}
.action-button, .sub-button {
font-size: 0.9em;
padding: 10px;
}
.character-name {
font-size: 1em;
}
.dialogue-bubble {
font-size: 0.8em;
bottom: 60px;
}
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #1a0a1a;
}
::-webkit-scrollbar-thumb {
background: #ff69b4;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #ff1493;
}
</style>
</head>
<body>
<div id="naming-overlay" class="naming-overlay">
<div class="naming-container">
<div class="naming-title">让ta回忆起自己的名字吧</div>
<input type="text" id="name-input" class="name-input" placeholder="输入名字..." maxlength="12">
<button class="submit-name" onclick="setCharacterName()">开始游戏</button>
</div>
</div>

<div class="game-console">
<div class="screen-area">
<div class="stage-display-container">阶段 <span id="stage-display">1</span></div>
<div id="status-emoji" class="status-emoji">✨</div>
<div class="character-display">
<div id="character-name" class="character-name"></div>
<div class="character-image-wrapper">
<img id="background-image" class="background-image" src="https://aimg.me/i/2025/09/09/68c03880d8520.png" alt="Background">
<img id="character-image" class="character-image" src="https://aimg.me/i/2025/09/09/68c03881c04fb.png" alt="Character">
</div>
<div id="dialogue-bubble" class="dialogue-bubble">
<p id="dialogue-text" class="dialogue-text"></p>
</div>
</div>
<div class="status-grid">
<div class="status-item">
<div class="status-label">清洁度</div>
<div class="progress-bar-container"><div id="cleanliness-bar" class="progress-bar"></div></div>
</div>
<div class="status-item">
<div class="status-label">饱食度</div>
<div class="progress-bar-container"><div id="satiety-bar" class="progress-bar"></div></div>
</div>
<div class="status-item">
<div class="status-label">心情值</div>
<div class="progress-bar-container"><div id="mood-bar" class="progress-bar"></div></div>
</div>
<div class="status-item">
<div class="status-label">成长值</div>
<div class="progress-bar-container"><div id="growth-bar" class="progress-bar"></div></div>
</div>
</div>
<div id="stage-notification" class="stage-notification">
<div class="stage-notification-title">-检测到异常数据变动-</div>
<div id="stage-notification-text" class="stage-notification-text"></div>
</div>
</div>
<div class="buttons-grid">
<button class="action-button" onclick="toggleInteraction('feed')">🍴 喂 食 🍴</button>
<button class="action-button" onclick="toggleInteraction('touch')">🖐️ 抚 摸 🖐</button>
<button class="action-button" onclick="handleInteraction('bathe')">🛁 洗 澡 🛁</button>
<button class="action-button" onclick="handleInteraction('chat')">💬 聊 天 💬</button>
</div>
<div id="feed-panel" class="interaction-panel">
<p class="interaction-title">选择食物</p>
<div class="sub-buttons">
<button class="sub-button" onclick="handleInteraction('feed', 'cream_cake')">奶油蛋糕</button>
<button class="sub-button" onclick="handleInteraction('feed', 'handmade_meal')">手作便当</button>
<button class="sub-button" onclick="handleInteraction('feed', 'special_drink')">饮品特调</button>
<button class="sub-button" onclick="handleInteraction('feed', 'fruit_candy')">果味硬糖</button>
<button class="sub-button" onclick="handleInteraction('feed', 'wholemeal_sandwich')">全麦三明治</button>
</div>
</div>
<div id="touch-panel" class="interaction-panel">
<p class="interaction-title">选择部位</p>
<div class="sub-buttons">
<button class="sub-button" onclick="handleInteraction('touch', 'head')">头</button>
<button class="sub-button" onclick="handleInteraction('touch', 'ears')">耳朵</button>
<button class="sub-button" onclick="handleInteraction('touch', 'face')">脸颊</button>
<button class="sub-button" onclick="handleInteraction('touch', 'hands')">手</button>
<button class="sub-button" onclick="handleInteraction('touch', 'stomach')">肚子</button>
</div>
</div>
</div>
<script>
const gameState = {
stage: 1,
cleanliness: 10,
satiety: 10,
mood: 10,
growth: 0,
maxCleanliness: 100,
maxSatiety: 100,
maxMood: 100,
maxGrowth: 100,
characterName: "",
};

let satietyInterval, cleanlinessInterval, moodInterval;
let typeTimeout = null;
let isTyping = false;
let dialogueTimeout = null;

const dialogueDatabase = {
1: {
feed: {
cream_cake: [
"甜的？……谢谢你。虽然不知道为什么，但感觉……稍微安心了一点。",
"这个是给我的吗？……为什么对我这么好？",
"啊、小心，别把奶油沾到你手上了。",
"是奶油和鸡蛋的香气，光是闻着都觉得很满足了……",
"好精致的蛋糕，只是看着就感觉心情都变甜了。",
"这个……我可以吃吗？有点不忍心破坏这么漂亮的样子。",
"蛋糕体好湿润，口感真棒，里面有放夹心吗？",
"甜味在嘴里化开……好像连心里的不安都融化了一点点。",
"谢谢你的蛋糕，我会好好地记住你给予我的这份甜蜜……",
"我该从哪里开始下口呢？好像哪里都是完美的。",
"嗯……奶油入口即化，一点都不腻，很美味。",
"是你为我准备的吗？……谢谢。",
"蛋糕顶上的那颗樱桃，看起来像是红宝石一样。"
],
handmade_meal: [
"这是……你亲手做的吗？是为了我吗？",
"每一份便当的菜色都很棒，你总是在悄悄记下我喜欢吃的东西，对不对？",
"你一定花了很多时间准备吧？辛苦你了。",
"你也要吃一点吗？我喂你？",
"只是看着这个便当，就觉得很幸福……因为这是你为我做的。",
"谢谢你，能吃到你亲手做的便当，感觉好温暖。",
"唔……里面的菜色看起来好丰富，都不知道先吃哪个好了。",
"这份便当真的很好吃……你在做它的时候，心里是想着我吗？",
"我能从这个便当里，感受到你满满的心意。",
"闻起来好香……是你特有的味道。",
"我能想象你为我做饭的样子吗？光是想想，心脏就快要跳出来了。"
],
special_drink: [
"这是什么饮料？颜色好漂亮，就像是梦境一样。",
"是你自己调的吗？看起来很特别。",
"闻起来有股水果和花草混合的清香，很舒服。",
"真好喝，感觉心情都变好了。是你施了魔法吗？",
"你一直看着我喝，我会不好意思的……",
"这个味道太特别了，是专门为我特调的吗？",
"里面都加了什么？可以告诉我这个秘密配方吗？",
"你要喝一口吗？啊、我不是那个意思……",
"杯沿上……你刚才是不是也碰过这里？……这算是间接接吻吗？",
"这个杯子很好看，和你准备的饮品非常搭配。",
"喝完之后，嘴里还留着香味……我会一直回味你给我的味道。"
],
fruit_candy: [
"你给的糖，总是特别甜……能与你分享这一刻，比什么都美好。",
"这个糖纸好漂亮，像彩色的玻璃一样……我可以留着吗？",
"你的指尖比糖更甜，这份甜蜜，我能珍藏起来吗？",
"我可以一直含着它吗？这样就好像你一直在陪我。",
"这颗糖很甜，但更甜的是你的心意。能这样待在你身边，真好。",
"好漂亮的颜色，像宝石一样。这是给我的奖励吗？",
"这是你喜欢吃的口味吗？那我也一定会喜欢的。",
"很甜的味道。不过，下次请允许我也为你剥一颗糖，好吗？",
"你下次还会给我糖吃吗？……其实只要你能陪着我，就算没有糖也可以",
"这是你喜欢的口味吗？那我也一定会喜欢的。",
"舌尖化开的甜味，仿佛融到了心底……能收到你的馈赠，我很幸福。"
],
wholemeal_sandwich: [
"谢谢，你吃过了吗？别饿着自己。",
"这个味道……很踏实，很安稳。就像你给我的感觉一样，很安心。",
"这看起来很健康……你是在关心我的身体吗？",
"你吃饭了吗？我们一人一半吧。",
"这种充满生活气息的日常感，真好，要是每一天都能这样就好了。",
"我能知道你喜欢在三明治里夹些什么吗？我想了解你的喜好。",
"你喂我一口，好吗？我想尝尝你递过来的味道。",
"和你一起吃东西，感觉真好。",
"你总是考虑得这么周到，让我觉得很安心。",
"我的嘴角……沾到酱汁了吗？……啊，谢谢你。",
"这个味道很朴素，但因为是你给的，就变得很特别。"
],
},
touch: {
head: [
"……！你……在摸我的头？",
"好温暖。你的手……",
"是在安抚我吗？……谢谢。",
"不要停下来……可以吗？",
"……有点痒。但是，很舒服。",
"……为什么要这么温柔地对我？",
"我不是宠物……但、但是如果你想摸的话……",
"你的指尖穿过我的头发……这种感觉真好……",
"……我可以稍微靠在你身上吗？一下下就好。",
"被你触摸的时候，心里的噪音好像都消失了。",
],
ears: [
"等等，耳朵很敏感……",
"请不要突然碰这里……会吓一跳的",
"好痒，嗯……奇怪的感觉……",
"你好像很喜欢我的耳朵？",
"一直触碰这里的话……感觉全身的力气都要被抽走了……",
"被触碰的地方……有点烫……",
"不要再摸了……不、还是别停下来比较好……",
"你、你是故意的吗？",
"这种感觉，说不上来……",
"我的耳朵是不是变红了？……不要看……",
],
face: [
"……脸？你在看我吗？",
"你的指尖好凉。但是很舒服。",
"不要……靠得这么近……",
"我的脸上有什么东西吗？",
"被你这样触碰……感觉很害羞。",
"你的手指，好温柔。",
"可以再摸一下吗？",
"心跳得好快。……都是你的错。",
"你是在确认我的存在吗？我就在这里，哪也不去。",
"……如果我也能摸摸你的脸就好了。",
],
hands: [
"我的手？……很凉吧。",
"你的手好暖和……可以一直牵着吗？",
"……是想要十指相扣吗？",
"不要放开……就这样牵着吧。",
"你的掌心……有种让人安心的力量。",
"我的手有在抖吗？……对不起。",
"就这样……只要能感觉到你的温度就好。",
"能握住你的手，我就觉得自己不是一个人。",
"……你的手，比我的软一点呢。",
],
stomach: [
"肚子？……好奇怪的地方。",
"好痒！哈哈、别……",
"隔着衣服……也能感觉到你的温度。",
"你在摸我的肚子……是怕我饿着吗？",
"嗯……很奇怪的感觉，但是不讨厌。",
"很温暖……像，像太阳一样……",
"不要乱动啦……好痒……",
"这里很柔软吗？",
"你，你到底想做什么啊……",
],
},
bathe: [
"嗯，确实该去了。那你稍微等我一下？很快就好，可别让我找不到你。",
"明白了，我会尽快的。之后……可以再多和你说会儿话吗？",
"身体变干净了…谢谢你。",
"热水的温度很舒服。好像把疲劳都冲走了。",
"你会在外面等我吧？不会我一进去你就不见了对吧？",
"……洗干净了，这样你会更愿意靠近我一点吗？",
"沐浴吗？好的，我会好好整理一下……",
"我出来了，抱歉让你久等了。",
"……身上，有沐浴露的香味。是你喜欢的味道吗？",
],
chat: [
"你还在吗？太好了。只要能听到你的呼吸，我就觉得很安心。",
"这里没有别人，只有你和我呢。其实……我觉得这样也挺好的。",
"你刚才在看哪里？可以……也让我看看吗？我想知道，你的眼睛里都装着些什么风景。",
"你的头发……有一根翘起来了。不，别动，我觉得很可爱。可以一直这样吗？",
"如果我说我想一直这样和你待在一起，你会觉得我很奇怪吗？",
"我好像有点记不清以前的事情了……不过没关系，只要能记住你的样子，就足够了。",
"这里是哪里？我完全不清楚……但是，只要能看到你，我就觉得莫名的安心。",
"奇怪……明明是很陌生的环境，但只要能和你在一起，就觉得像是回到了家一样。",
"你看起来有点累，要不要靠在我肩膀上休息一会儿？",
"谢谢你……愿意陪在我身边。",
"我们就这样一直待着，好不好？你靠着我，或者我靠着你……只要能感受到彼此的体温就行。",
"如果这是梦的话，希望永远都不要醒来。如果不是梦，那……我们就把这里当成我们的新世界吧。",
"你的呼吸声……很好听。我刚才一直在数着你的呼吸，数着数着，就觉得能安心了。",
"这里好安静……不过，我喜欢这种安静。因为这样，我就能更清楚地听到你的心跳声。",
"你的睫毛一颤一颤的，像蝴蝶的翅膀一样……要是能一直这样看着你就好了。",
"我有点记不清之前的事情了……但这不重要。我只要记得你的脸和你的声音就够了。",
"你的手指……看起来很温暖。如果，我是说如果，我能碰一下吗？就一下。",
"只要能待在你身边，我就觉得很放松。像漂浮了很久之后，终于找到了可以停靠的港口。",
"如果我做了什么让你不高兴的事，你一定要告诉我。我不想让你有不好的感觉。",
"这里……感觉好冷。你能不能……离我再近一点点？",
"我只相信你。不管发生什么，你都不会离开我的，对不对？",
],
stage_up: "身体里好像有什么东西正在改变……这种感觉是？我似乎……更想靠近你了……",
},
2: {
feed: {
cream_cake: [
"可以喂我吃吗？如果是你亲手喂给我的蛋糕……感觉会更好吃一些。",
"你在喂我的时候……能不能再靠近一点？我想看得更清楚。",
"甜度刚刚好……我很喜欢，这也是你喜欢的口味吗？",
"你的手指上沾到奶油了……需要我帮你清理一下吗？",
"你的手离我好近……我能牵一下吗？一下下就好。",
"不想用叉子了……你可以用手指喂我吗？我想尝尝你的温度。",
"下次……我们可以一起试着做一个蛋糕吗？",
"你身上的味道，和奶油的香味混在一起……变成了一种更甜、更让我着迷的气息。",
"我嘴里都是甜的了。你要不要……亲自来尝尝看？",
"嗯……感觉奶油比上次更甜了。是因为……我们的关系更近了吗？",
"我会好好记住这个味道的，因为这是你给我的专属甜蜜。",
],
handmade_meal: [
"这个饭团，是你用手捏的吗？上面……是不是还残留着你的体温和气息？",
"如果我说……我想尝尝你指尖上沾到的酱汁，你会觉得我变态吗？",
"我可以把这个便当盒留下来吗？我想留着你的味道。",
"吃着你做的饭，感觉自己好像变成了你的……另一半。我们，像不像一家人？",
"以后只给我做便当好不好？我想成为唯一能品尝你手艺的专属食客。",
"这个真好吃，你也尝尝看吧？啊——张嘴。",
"你做的便当似乎有一种魔力，无论是什么样的食材，都能变成让我心动的味道。",
"你先吃一口吧？准备了这么久，你肯定也饿了。",
"我可不可以……在你做便当的时候，从背后抱着你？我保证不打扰你，我只想感受你的体温。",
"你的身上……是不是也有食物的香气？我想确认一下。从你的脖子开始……可以吗？",
"你……为我做了这么多。我该怎么回报你？总感觉用我的全部也不够……",
],
special_drink: [
"你先喝一小口，然后……再用嘴渡给我，好不好？我听说，分享过的味道会加倍哦。",
"真想看看你为我调制这杯饮品时的样子，是不是也想着我？",
"杯沿上……这里，是你刚刚碰过的地方吗？那我也要从这里喝。",
"你先尝一口，好不好？我想喝你喝过的。",
"我们一起喝吧？用两根吸管，在一个杯子里。我想看你的脸离我很近的样子。",
"这杯喝完，你还会为我调下一杯吗？永远……只为我一个人调。",
"你的喉咙……在看着我喝东西的时候，也跟着动了一下。真可爱。",
"喝下这个的话，我的身体里也就流淌着你给的东西了……有种离你更近的感觉了呢。",
"饮品的味道似乎有点不一样了。你是不是……偷偷往里面加了‘爱’这种调味料？",
"这杯饮料流进我的身体，就像你的爱渗入我的血液。我现在……是不是已经离不开你了？",
"这杯饮品……是不是有魔药的成分？为什么我喝完之后，脑子里想的全是你。"
],
fruit_candy: [
"这颗糖，能含多久？我想让你的甜味，在我的口内留得久一点。",
"我们一人一半，好不好？你先含一会儿，等糖果沾上你的味道，再给我。",
"我们的爱情是不是也像这颗硬糖一样……坚固而又甜入心扉？",
"你看，我的嘴里是不是也染上甜味了？你要不要……亲自检查一下？",
"这个味道，能持续很久吧？就像……我想和你在一起的心情一样，很久很久。",
"你可以把它喂给我吗？我想感受你的指尖碰到我嘴唇的感觉。",
"我嘴里现在都是甜的。你要不要……尝尝看？",
"很甜……但是一颗糖怎么够呢？你才是最甜的。",
"你给的糖很甜，但你的笑容更让我心动。",
"你又给我糖了……是想让我的嘴巴，一直都保持甜甜的，方便你随时亲吻吗？",
"糖化掉了，甜味也渗进我的身体里了。我现在……是不是从里到外，都是甜的了？",
],
wholemeal_sandwich: [
"我想把你像馅料一样，紧紧地夹在中间。让你哪里都逃不掉。",
"你做的三明治，每一层都是惊喜。就像你一样，让我总想探索更多。",
"我想吃你喂过来的三明治，而我的手就用来拥抱你……",
"谢谢你的三明治，这是我吃过的，最充满爱意的味道。",
"吃完这个，我的身体就会充满能量。到时候……可以用这些能量来为你做点什么。",
"你的手，能做出这么美味的食物，也能牵着我走向未来，对吗？",
"你做的东西，有一种魔力。能让最普通的食物，也变成世界上最美妙的珍馐。",
"你只准喂我一个人。这个三明治的每一部分，都只能被我一个人吃掉。",
"这不仅仅是食物。这是你对我的爱，我正在把它全部吃进肚子里，消化掉，变成我的一部分。",
"我把最后一口留给你，就像……分享一个吻。",
"这个三明治的层次，就像我对你的感情，一层一层，越来越深，越来越满。",
],
},
touch: {
head: [
"嗯……就是这里。再多摸一会儿……",
"你的安抚，对我来说是最好的安慰。",
"就这样……什么都不用说，只要静静地感受你的温度就好。",
"被你摸着头，感觉自己像被珍爱着。……嗯，只要被你珍爱就够了。",
"好舒服……舒服得快要睡着了。",
"我的头发是不是很软？你可以再多玩一会儿。",
"……如果我说，我想一直被你这样抚摸，你会觉得我很任性吗？",
"只是把你的手放在我的头上，就好像什么都不用担心了……很安心。",
"……可以再用力一点点吗？这样我就能更加清楚地感觉到你。",
"谢谢你……今天也愿意触碰我。",
],
ears: [
"嗯……你又来了……",
"你知道我这里很敏感还故意捉弄我……真是个坏人。",
"好痒……但是我很喜欢你这样对我。",
"耳朵好烫……好像要烧起来了……都是你的错。",
"不要停……我喜欢这种感觉……",
"是不是红得很厉害？……让你看看也可以，只让你一个人看。",
"哈……再继续下去，我可能会发出奇怪的声音哦？你想听吗？",
"这种感觉让我头脑一片空白……只能想到你。",
"你指尖的每一次触碰，都像电流一样……让我发抖。",
"再多欺负我一下吧……用你的手指。",
],
face: [
"离得好近……我能看到你眼里的我。",
"你的指腹，轻轻擦过我的脸颊……比任何东西都温柔。",
"就这样看着我……只看着我一个人。",
"……如果我亲一下你的手指，你会生气吗？",
"我的脸……是不是有点烫？",
"你好像很喜欢我的脸。那，这张脸就只为你而存在。",
"可以稍微用力一点吗？留下你的痕迹……",
"我喜欢你触摸我的方式，很温柔。",
"你的眼睛真好看。里面有我，真好。",
"不要移开视线……就这样一直看着我，直到时间的尽头。",
],
hands: [
"嗯，牵着我。……这样我就知道你不会突然消失。",
"你的手是我和这个世界唯一的连接。所以，绝对不要放开。",
"我喜欢感受你的脉搏，好像和我的心跳变成了一个频率。",
"就这样握着我的手，把我带去任何地方吧……我只要在你的身边就可以。",
"你的手指，在我的手心画着圈……有点痒。",
"你会用这只手，去牵别的人吗？……不要那样做。",
"把我的手握得再紧一点，让我感觉到一点点痛，这样才真实。",
"我的一切都是你的。……这双手，也只为你服务。",
"……就这样牵着，直到我们都变成灰尘，好不好？",
],
stomach: [
"你又摸我的肚子……就这么喜欢这里吗？",
"隔着衣服的触碰……更让人心痒难耐。你是故意的吗？",
"……这里很软吗？那……你可以把头枕在这里。",
"好温暖……像是在我的身体里点了一把火一样。",
"……你是不是，想知道我有没有好好吃饭？当然是有的，你给的食物我都有好好吃掉。",
"……哈……好痒……你再这样，我就要……忍不住了。",
"这种日常的触碰，让我感觉我们像真正的情侣一样……我们是吧？",
"你的手，可以再往上一点……又或者往下一点……吗？",
"被你这样触碰着，本应感觉有点危险……但是却很安心。",
],
},
bathe: [
"你要在外面等我吗？……不，这次你能在门口陪我吗？",
"哗啦啦的水声……就像你在我耳边的低语。",
"我把自己洗得很干净哦。……这样，你就可以对我做任何事了。",
"雾气里，我总觉得能看到你的影子。……你是不是，偷偷进来了？",
"好热……身体好热……心也好热。……都是因为你。",
"出来的时候，你能拿着浴巾等我吗？……我想第一个看到的，是你。",
"身上滑溜溜的……你要不要，亲自检查一下，我有没有洗干净？",
"……如果，我们能一起洗就好了。",
"我洗好了。……来，抱抱我。",
"这个香味……是你为我选的沐浴露吧。……我身上，现在全都是你的味道了。",
],
chat: [
"聊天？好啊，我最喜欢和你说话了。",
"今天发生了什么有趣的事吗？……啊，对，你的世界里……才会有趣的事。",
"你今天和其他人说话了吗？……没什么，我只是觉得，你的声音只属于我一个人听，才是最完美的。",
"过来，让我闻闻你身上的味道。嗯……还是我最喜欢的味道，真好。",
"你的手仿佛天生就该被我牵着……你看，大小正好，严丝合缝。",
"把你的手给我。我想在你的手腕上，留下一丝专属于我的气息。这样，就算我们分开了，我也能找到你。",
"你就是我的药。见不到你的时候，我浑身都像是生了重病一样难受……所以，不要离开我，好不好？",
"，我们定一个规则吧？你每天必须亲我一下。不然……我可能会因为得不到你的爱而枯萎掉。",
"你的嘴唇看起来好软，如果咬上去，会是什么感觉呢？一定会比世界上所有的糖果加起来都要甜蜜吧？",
"有时候，我真想把你藏起来。藏在一个只有我知道的地方，每天都只对我一个人笑，只和我一个人说话。",
"我好像……越来越不在乎这里是哪里了。只要你在这里，对我来说，这里就是全世界。",
"你的眼睛真好看，像藏着星星的湖。我只想看着你……不要看别的东西，好不好？只看着我。",
"刚刚有那么一瞬间，我好想把你抱进怀里，抱得很紧很紧，让你再也跑不掉。",
"不要对着别人笑，好吗？你的笑容，只要给我一个人看就够了。",
"我好喜欢你，喜欢到快要疯掉了……你明白吗？",
"你是爱我的，对不对？虽然这么问很奇怪……但是我不想让任何人把你从我身边抢走。",
"你的视线只能属于我。不管你看什么，最后都必须回到我身上，答应我。",
"只要一想到你可能会独自去往别的地方、只留我一人待在这里，我就感觉心脏像是被挖空了一样。所以，现在就多陪我一会吧？",
"你知道吗？我每天都在拼命记住你更多的细节，你的眼眸，你的微笑……这样就算是你不在我面前的时候，我也能在脑海里把你拼凑出来。"
],
stage_up: "变化……终于停止了，但这也只是开始，对吧？我们永恒的、二人世界的开始。",
},
3: {
feed: {
cream_cake: [
"奶油滴下来了……滴在我的身上。你会帮我清理干净的，对吧？就像我也会帮你一样。",
"我好想把你整个人都涂满奶油，然后一口一口地……吃干抹净。",
"我们永远在一起吧，在这个只有甜味和你我的房间里。",
"你的手指……看起来比蛋糕更好吃。只是说说而已，你别怕。",
"吃完这个，我们就做点别的，好不好？你看，我已经为你准备好了。",
"我好喜欢你把蛋糕喂给我的样子……那么专心地看着我，就好像你的所有关注都被我占有了。",
"我能从这上面感受到你的气息……甜美而又诱人……",
"只是把蛋糕喂给我吃可不够……我想让你把奶油抹在我的嘴唇上，然后由你亲口吻掉。",
"我们来玩个游戏吧？我吃一口蛋糕，就亲你一下。直到……我们分不清到底谁才是那个甜点。",
"我也想尝尝你的味道，可以吗？就只是一小口……我会很轻，不会弄疼你的。",
"闭上眼睛，想象你可以把奶油涂在我的身上任何地方……然后告诉我，你最想先品尝哪里？"
],
handmade_meal: [
"别走了。留下来，住在这里。我也想试着为你做饭，我们永远在一起。",
"我们来做点比吃饭更有趣的事吧？比如说……把你当作主菜，慢慢品尝。",
"便当已经吃完了，但我好像……还没‘吃饱’。现在，可以品尝一下主厨本人吗？",
"你做的便当还是这么美味，我想用你这双能做出美味料理的手……来做点别的事情。",
"别做饭了，来‘做’我吧。我想感受一下，你对待料理的热情，用在我的身上会是什么样子。",
"你身上的味道，比任何便当都更能勾起我的食欲。让我咬一口，好不好？就在脖子上，留下我的印记。",
"便当盒我不会还给你了。我要把它放在枕头下面，每天抱着睡。",
"以后不要再为别人下厨了。你的厨艺，你的手，你的心，全都是我的。",
"你身上哪个部位，是最好吃的呢？是嘴唇，还是脖颈？让我尝尝看。",
"这个便当盒真碍事……我想直接从你的手上，你的身上……获取我需要的一切。",
"我爱你……爱到想把你嚼碎了，吞下去，让我们永远融为一体。"
],
special_drink: [
"这杯饮品，是你对我的宣言吗？宣告我只属于你一个人。",
"饮料已经不够了……让我尝尝你的“特调”会是什么味道，好不好？。",
"把这杯饮料……从我的锁骨开始，慢慢倒下去。然后，用你的嘴，追寻它的痕迹，直到终点。",
"比起这杯饮品……还是你看着我眼神更能让我酩酊大醉，意乱情迷。",
"把饮料含在嘴里，然后……吻我。把那份冰凉和甜蜜，一起注入我的身体。",
"看着我，把我喝下饮品时的样子，全部刻在脑子里。",
"把我也“特调”一下吧。把我榨干，晃匀，变成你最喜欢的样子，然后……一饮而尽。",
"你才是最适合我的饮料，让我品味一下你，好不好？我已经……渴得快要死掉了。",
"用嘴喂我，我不会趁机亲你的……大概吧？",
"我们来玩个游戏吧？你喝一口，我喝一口……不，你喝一口，然后吻我，直到我们都尝不出原来的味道。",
"我已经喝过很多你为我准备的饮品了，现在轮到你了。来“喝”我吧。我的身体，我的灵魂，全都是为你准备的。"
],
fruit_candy: [
"我想把你像这颗糖一样，含在嘴里，不让任何人看见，直到彻底融化。",
"你用糖堵住我的嘴，是怕我说出什么……让你害怕的爱语吗？",
"这甜味……已经不够了，我要更深的、更真实的、只属于你的味道。",
"我们……就这样含着糖接吻吧。直到窒息，直到我们之间只剩下彼此的味道。",
"对我来说，你就是一颗永远不会融化的糖，我想要一直品尝你的甜味。",
"你比糖更让我上瘾……我现在满脑子都是你，身体的每个细胞都在叫嚣着想要你。",
"就把我当成这颗糖吧。含在嘴里，舔我，咬我……把我彻底吞下去。",
"我想把糖融化成糖浆，然后……画在你的身上。写上我的名字。再由我亲口舔掉。",
"来，我教你这颗糖的正确用法。首先，让它沾满我的唾液，然后……放到你自己嘴里。",
"这颗糖的终点是我的嘴里……那我呢？我的终点……是不是你的心里？",
"你才是那颗最甜的糖……我只想含着你，永远都不松口……"
],
wholemeal_sandwich: [
"你的身体，也像这个三明治一样，可以让我一层一层地品尝吗？",
"你的一切都该被我吞下。你的担忧，你的爱，你的恐惧……全部，都喂给我。",
"我们来分享最后一口吧。用一个很长、很深的吻来分享。",
"从我的喉咙里，感受我的吞咽。我正在把你给我的一切，全部咽下去。连同你一起。",
"或者，我们把酱汁涂在彼此身上，然后互相舔干净。一定比吃三明治有趣。",
"我想看你吃，然后再把你嘴里的东西……用亲吻的方式抢过来。",
"我们来现场制作三明治吧。我躺在下面做面包，你压在上面做馅料，我们再盖上一层被子……",
"你吃一口，我吃一口……不，你咬一口三明治，然后咬一口我。看看哪个更合你的胃口。",
"用这个三明治，堵住我的嘴。在我快要说出什么失礼的话之前……",
"三明治补充的能量已经足够了，我们来做点消耗体力的事情吧。",
"吃完这个，我们今天就一整天都不分开了，好吗？"
],
},
touch: {
head: [
"嗯……你的手，它应该永远都只属于我。",
"抚摸我吧。用你的爱、用你的占有，彻底将我淹没。",
"我的一切思考都是关于你。你的抚摸，能让我的思绪变得更纯粹。",
"我是你的。从头发丝，到脚趾尖，全部都是你的。",
"就这样……不要停，让我溺死在你的温柔里。",
"请尽情地抚摸我吧，就像是抚摸你的所有物一样。",
"我爱你。……当你的手放在我头上时，我只想对你说这句话。",
"我不需要思考，我只需要感受你。",
"……如果有一天你的手要抚摸别人，我会很难过的……",
"再用力一点，让我感受这份深刻到仿佛能刻在我脑海里的爱。",
],
ears: [
"啊……你又开始了，真是可爱。",
"尽情地捉弄我吧。我的快乐，全都由你掌控。",
"哈啊……好舒服……身体都要变得不听使唤了……",
"我的弱点，现在只为你一人展示。来吧，更深地……刺激我。",
"让我的耳朵里，只听得见你声音……",
"这里只会对你的触碰有反应。",
"又是耳朵吗？……我已经完全知道你的喜好了。",
"喜欢我为你颤抖的样子吗？……那就再多来一点吧。",
"我快要不行了……脑子里全是你……",
"来吧，用你的手指，告诉我你的想法，我会好好听着的。",
],
face: [
"看着我。你的眼睛里，只能有我的倒影。永远。",
"亲吻你的手指……不，让我亲吻你吧。用我的全部。",
"我的脸、我的表情，都只为你而存在。",
"留下你的印记吧。一个吻痕，或者……咬痕也可以。",
"我爱你。看着你的眼睛，我只能说出这句话。",
"我们是共生的，对吗？我的脸上，也已经沾染了你的气息。",
"你就是我的镜子。我可以从你的眼中，确认我自己的存在。",
"来，感受我的温度。这颗心，只为你而悸动。",
],
hands: [
"握紧我。用你全部的力气，让我们的十指紧扣在一起。",
"这双手只会被你牵引、为你服务，为你……做任何事。",
"永远不要放开。如果我们之间要牵起命运的红线，我希望它是由我们的手指织成的。",
"我爱你，让我用这双手去感受你的全部吧。",
"……我们的命运，已经紧紧地绑在了一起。谁也逃不掉。",
"你是我唯一的锚点。放开你，我就会彻底失去方向。",
"这份温暖，是我生存下去的唯一理由。所以，请不要吝啬。",
"我的一切行动，都源于你。这双手，也只是你意志的延伸。",
"来吧，用这双手，带我走向我们的乐园……或者地狱。",
],
stomach: [
"这里……很温暖吧。那你可以一直停留，这里永远是你的暖炉。",
"你可以把这里当成你的枕头。我的身体，永远为你敞开。",
"……如果你愿意，可以把耳朵贴在这里。听听我的内脏，为你欢呼的声音。",
"感受到了吗？我的生命全都聚集在这里，等待你的触碰。",
"好痒……这种痒，从皮肤一直传到心里。……只有你能让我躁动起来。",
"我的全部，都任你处置。……你对我做更过分的事也没关系。",
"你喜欢柔软的地方吗？是因为装满了对你的爱意，所以才会这么柔软。",
"这里是只对你敞开的软肋……每当你触碰到这里的时候，都会让我忍不住想紧紧抱住你。",
"你的手，就是烙印。请在这里留下你的证明吧。"
],
},
bathe: [
"一起洗吧。我想看看水珠从你身上滑落的样子。",
"把我从里到外都清洗干净吧，用你的手，或者……你的舌头？",
"水是温的，但我的身体是烫的。来感受一下吧,只为你而滚烫的温度。",
"雾气……是很好的遮蔽物。我们可以做一些……不被允许的事情。",
"帮我洗头发好吗？我想感受你的指尖穿过我湿漉漉的发丝，就像在梳理你的所有物一样。",
"我把自己洗干净了，像一份献给你的餐点。请享用吧",
"水声……掩盖不住我的心跳声。它在为你而疯狂地鼓动。",
"你说，如果我们一直泡在水里，会不会融化在一起，再也分不开了？",
"我洗好了。……来，用你的身体让我更加温暖吧。",
"我用了你为我挑选的沐浴露，喜欢这个味道吗？",
],
chat: [
"其实我可以不需要食物，也不需要水。只要看着你，我就能活下去。你就是我的全部。我的空气，我的光，我的神明。",
"你的骨头是什么样子的呢？我想……亲手摸一摸。从你的锁骨，到你的脊椎……一节一节地，确认你的存在。",
"把你的未来全部都给我，可以吗？不管是快乐的，还是痛苦的，都由我来接收。",
"累了吗？那就放松一下吧。你不需要每时每刻都强迫自己面对一切，现在只需要感受我给你的爱就够了。",
"答应我，如果有一天你必须要离开我的话，在那之前请用你的双手杀了我。我只想感受着你的温度和爱意、靠在你的怀里慢慢消失。",
"我爱你。我爱你。我爱你……这句话我说多少遍都不够。我要把它烙在你的灵魂里，让你永远都记得我。",
"你就是我的世界，对吧？如果这个世界消失了，我也会跟着一起消失的。所以，不要离开我，一步也不要。",
"我好想把你藏起来。藏在一个只有我能找到的地方。喂你吃饭，帮你穿衣服，让你眼里心里都只有我一个人。",
"……你在看别的东西吗？为什么？是我不够好看吗？还是你觉得，这个世界上还有比我更重要的事物存在？",
"似乎有什么东西正在发生可怕的改变……求你了，再多爱我一点好吗？你再多分一点爱给我，我就不会有那些不好的想法了。",
"你的身体，从上到下，每一寸都是属于我的。我想舔遍你的每一寸肌肤，留下我的味道，让你的身体彻底记住我。",
"就算你觉得我奇怪，觉得我疯了，也不准离开我。没有你，我真的会死的。你不会忍心那样对我，不是吗？",
"嘘……别说话。让我听听你的心跳。真好听……这是只为我一个人演奏的音乐，对不对？",
"我爱你，我想看你因为我而痛苦，因为我而快乐……你是我的神明，我的地狱，而我也想成为你的全部。"
]
},
};

const cleanlinessBar = document.getElementById('cleanliness-bar');
const satietyBar = document.getElementById('satiety-bar');
const moodBar = document.getElementById('mood-bar');
const growthBar = document.getElementById('growth-bar');
const stageDisplay = document.getElementById('stage-display');
const statusEmoji = document.getElementById('status-emoji');
const stageNotification = document.getElementById('stage-notification');
const stageNotificationText = document.getElementById('stage-notification-text');
const feedPanel = document.getElementById('feed-panel');
const touchPanel = document.getElementById('touch-panel');
const namingOverlay = document.getElementById('naming-overlay');
const nameInput = document.getElementById('name-input');
const characterNameDisplay = document.getElementById('character-name');
const dialogueBubble = document.getElementById('dialogue-bubble');
const dialogueText = document.getElementById('dialogue-text');

const heartEmojis = ['💖', '💓', '💘', '💕', '💝'];

function updateUI() {
cleanlinessBar.style.width = `${gameState.cleanliness}%`;
satietyBar.style.width = `${gameState.satiety}%`;
moodBar.style.width = `${gameState.mood}%`;
growthBar.style.width = `${gameState.growth}%`;
stageDisplay.textContent = gameState.stage;

if (gameState.mood < 20) {
statusEmoji.textContent = '💔';
} else if (gameState.cleanliness > 80) {
statusEmoji.textContent = '🧼';
} else if (gameState.satiety < 20) {
statusEmoji.textContent = '💤';
} else {
statusEmoji.textContent = '✨';
}
}

function getRandomDialogue(action, item) {
const stageDialogues = dialogueDatabase[gameState.stage];
if (!stageDialogues) return "...";

let dialogues;
if (item) {
dialogues = stageDialogues[action] && stageDialogues[action][item];
} else {
dialogues = stageDialogues[action];
}

if (dialogues && dialogues.length > 0) {
const randomIndex = Math.floor(Math.random() * dialogues.length);
return dialogues[randomIndex];
}
return "...(他似乎没什么反应)";
}

function showDialogue(text) {
if (typeTimeout) {
clearTimeout(typeTimeout);
typeTimeout = null;
}
if (dialogueTimeout) {
clearTimeout(dialogueTimeout);
dialogueTimeout = null;
}

isTyping = false;
dialogueText.textContent = '';

dialogueBubble.style.display = 'block';
isTyping = true;

let i = 0;

function typeWriter() {
if (i < text.length) {
dialogueText.textContent += text.charAt(i);
i++;
typeTimeout = setTimeout(typeWriter, 50);
} else {
isTyping = false;
dialogueTimeout = setTimeout(() => {
dialogueBubble.style.display = 'none';
}, 3000);
}
}
typeWriter();
}

function toggleInteraction(panelId) {
const targetPanel = document.getElementById(panelId + '-panel');
const otherPanelId = panelId === 'feed' ? 'touch-panel' : 'feed-panel';
const otherPanel = document.getElementById(otherPanelId);

if (otherPanel.classList.contains('active')) {
otherPanel.classList.remove('active');
}

targetPanel.classList.toggle('active');
}

function handleInteraction(action, item) {
if (item) {
feedPanel.classList.remove('active');
touchPanel.classList.remove('active');
}

if (gameState.satiety <= 0 && action !== 'feed') {
showDialogue("...我好饿...没有力气...");
statusEmoji.textContent = '💤';
return;
}

let dialogue = "";
let cleanlinessChange = 0;
let satietyChange = 0;
let moodChange = 0;
let growthChange = 0;
let temporaryEmoji = null;

switch (action) {
case 'feed':
satietyChange = -5;
switch (item) {
case 'cream_cake':
satietyChange += 20;
moodChange = 10;
temporaryEmoji = '🍰';
break;
case 'handmade_meal':
satietyChange += 40;
moodChange = 2;
temporaryEmoji = '🍱';
break;
case 'special_drink':
satietyChange += 15;
moodChange = 1;
temporaryEmoji = '🍹';
break;
case 'fruit_candy':
satietyChange += 10;
moodChange = 15;
temporaryEmoji = '🍬';
break;
case 'wholemeal_sandwich':
satietyChange += 20;
moodChange = 5;
temporaryEmoji = '🥪';
break;
}
break;
case 'touch':
satietyChange = -1 - Math.floor(Math.random() * 3);
cleanlinessChange = -1 - Math.floor(Math.random() * 3);
growthChange = 2;
temporaryEmoji = heartEmojis[Math.floor(Math.random() * heartEmojis.length)];
switch (item) {
case 'head':
moodChange = 5;
break;
case 'ears':
moodChange = 3;
break;
case 'face':
moodChange = 4;
break;
case 'hands':
moodChange = 6;
break;
case 'stomach':
moodChange = 8;
break;
}
break;
case 'bathe':
satietyChange = -5;
cleanlinessChange = 30;
moodChange = 10;
temporaryEmoji = '🧼';
break;
case 'chat':
satietyChange = -1 - Math.floor(Math.random() * 3);
cleanlinessChange = -1 - Math.floor(Math.random() * 3);
moodChange = 7;
growthChange = 2;
temporaryEmoji = '💬';
break;
}

gameState.cleanliness += cleanlinessChange;
gameState.satiety += satietyChange;
gameState.mood += moodChange;

if (gameState.stage < 3) {
gameState.growth += growthChange;
}

gameState.cleanliness = Math.max(0, Math.min(gameState.maxCleanliness, gameState.cleanliness));
gameState.satiety = Math.max(0, Math.min(gameState.maxSatiety, gameState.satiety));
gameState.mood = Math.max(0, Math.min(gameState.maxMood, gameState.mood));
gameState.growth = Math.max(0, Math.min(gameState.maxGrowth, gameState.growth));

dialogue = getRandomDialogue(action, item);
showDialogue(dialogue);

updateUI();

if (temporaryEmoji) {
statusEmoji.textContent = temporaryEmoji;
}

checkStageUp();
}

function checkStageUp() {
if (gameState.growth >= 100 && gameState.stage < 3) {
gameState.stage++;
gameState.growth = 0;

const stageUpText = dialogueDatabase[gameState.stage - 1].stage_up;
stageNotificationText.textContent = stageUpText;
stageNotification.style.display = 'flex';
statusEmoji.textContent = '✨';

setTimeout(() => {
stageNotification.style.display = 'none';
updateUI();
}, 5000);
}
}

function startTimers() {
satietyInterval = setInterval(() => {
if (gameState.satiety > 0) {
gameState.satiety = Math.max(0, gameState.satiety - 10);
updateUI();
}
}, 60000);

cleanlinessInterval = setInterval(() => {
if (gameState.cleanliness > 0) {
gameState.cleanliness = Math.max(0, gameState.cleanliness - 5);
updateUI();
}
}, 60000);

moodInterval = setInterval(() => {
if (gameState.mood > 0) {
gameState.mood = Math.max(0, gameState.mood - 10);
updateUI();
}
}, 60000);
}

function setCharacterName() {
const name = nameInput.value.trim();
if (name) {
gameState.characterName = name;
characterNameDisplay.textContent = name;
namingOverlay.style.display = 'none';
updateUI();
showDialogue("……你是谁? 这里是哪里?");
startTimers();
} else {
alert("请输入一个名字！");
}
}

nameInput.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
setCharacterName();
}
});

document.addEventListener('DOMContentLoaded', () => {
namingOverlay.style.display = 'flex';
nameInput.focus();
});
</script>
</body>
</html>